草庐IT

Java TLS-PSK 套接字

全部标签

c# - C# : How to get the response stream? 中的套接字

我正在尝试替换它:voidProcessRequest(objectlistenerContext){varcontext=(HttpListenerContext)listenerContext;UriURL=newUri(context.Request.RawUrl);HttpWebRequest.DefaultWebProxy=null;HttpWebRequesthttpWebRequest=(HttpWebRequest)WebRequest.Create(URL);httpWebRequest.Method=context.Request.HttpMethod;httpWe

c# - 在 C# 中获取套接字对象的流

我有一个通过TCP/IP通信的客户端-服务器应用程序。我使用System.Net.Sockets.Socket类型对象通过TCP进行异步通信。基本上我打开连接发送/接收数据并关闭连接。而我的实现是基于Socket类型的对象。现在我需要使用第三方dll来做一些事情。此dll需要一个System.IO.Stream类型的对象。所以我需要获取我的Socket对象的Stream对象。我该怎么做?谢谢。 最佳答案 真的很简单。NetworkStream类的构造函数接受要包装的套接字:http://msdn.microsoft.com/en-u

c# - 高级套接字函数

我有一个由典型消息流(32位长度字段+可变长度主体)组成的典型网络协议(protocol),我想从TCP套接字异步读取消息。然而,C#似乎提供了一个相当低级的API:我仍然必须分配缓冲区,手动跟踪写入的偏移量和数据长度,并在单独调用读取长度和主体之间保持状态,就像过去糟糕的日子一样C.在开始编写乏味的异步有状态代码之前,是否有任何高级功能可供我尝试?(没有第三方库)。 最佳答案 没有内置的,没有。事实上,我也想不出任何第三方库。我还没有尝试过,但C#5可能会在这里提供一些语言级别的亮点。发生。另一种选择是使用同步读取的单独线程,但随

C# 套接字与管道

目前我正在Windows上开发一个多进程桌面应用程序。该应用程序将是一个收缩包装的应用程序,将部署在世界各地的客户端机器上。虽然我们可以对机器有广泛的规范-例如带有.Net4.0CF的WindowsXPSP3,我们无法控制它们,我们不能对它们的配置过于具体-例如我们无法指定机器必须具有支持cuda1.4的图形处理器等。其中一些进程是托管的(.Net4.0),其他进程是非托管的(C++Win32)。进程需要共享数据。迄今为止我评估过的选项是TCP套接字命名管道管道的性能似乎要好一些,但对于我们的需求-两者的性能都是可以接受的。套接字为我们提供了在未来跨越机器(和操作系统——我们最终希望支

c# - 高性能套接字上的异步等待与线程池与多线程(C10k 解决方案?)

我对async-await、pool和thread真的很困惑。主要问题始于这个问题:“当我必须处理10k套接字I/O时我能做什么?”(又名TheC10kProblem)。首先,我尝试创建一个自定义的线程池架构它使用一个主Queue和多个Thread来处理所有传入数据。这是一次关于理解的很棒的经历thread-safety和multi-threading但thread是一个矫枉过正现在使用async-await。后来,我用async-await实现了一个简单的架构,但我无法理解为什么“async和await关键字不会导致要创建的额外线程。”(fromMSDN)?我认为有必须有一些thre

c# - 想要一个用于传入数据的 .Net 套接字事件处理程序

我正在用C#(.NetFramework4.0)重写一个古老的VB6程序。它与工厂车间的一台工业设备进行通信。VB6使用了一些旧的基于COM的套接字软件;我正在使用.NetSocket类。当我向设备发送一条消息时,我希望收到回复,这样我就知道要收听了。但是设备也可以在没有警告的情况下异步发送消息(例如,指示故障或问题)。所以我总是必须收到那些。所以我真正想要的是一个事件处理程序,只要设备有任何消息,它就会被调用。Socket类似乎使用BeginReceive/EndReceive方案来处理接收事件。我可以只在程序开始时执行一次BeginReceive来为所有传入消息定义事件处理程序,还

c# - 要关闭套接字,请不要 Close() 套接字。嗯?

我知道TIME_WAIT是TCP/IP不可或缺的一部分,但是关于每秒创建多个套接字并且服务器最终耗尽临时端口的SO(和其他地方)有很多问题。我发现,当使用TCPClient(或Socket)时,如果我调用Close()或Dispose()方法套接字的TCP状态更改为TIME_WAIT并在完全关闭之前遵守超时期限。但是,如果它只是将变量设置为null,套接字将在下一次GC运行时完全关闭,当然可以强制关闭,而无需经历TIME_WAIT状态。这对我来说意义不大,因为这是一个IDisposable对象,GC不应该也调用该对象的Dispose()方法?下面是一些演示这一点的PowerShell代

c# - 异步写入套接字线程安全吗?

考虑Socket.BeginSend()方法。如果两个线程池线程同时调用此方法,它们各自的消息最终会相互混合还是套接字类会阻止这种情况发生? 最佳答案 .NETSocket实例不是线程安全的,因为同时调用某些方法(相同或不同的方法)可能会导致状态不一致。但是,BeginSend()和BeginReceive()方法本身是线程安全的。对每个(或两者)进行多次未完成调用是安全的。在BeginReceive()的情况下,当数据以调用的顺序可用时,它们将被服务。例如,如果您的处理时间很长,但您希望其他接收尽快发生,这将很有用。当然,在这种情

c# - 如何使用套接字通过 Internet 发送数据?

我想通过桌面应用程序通过互联网发送数据。我对套接字略知一二。我已经在局域网内传输了数据,但现在我想通过互联网传输数据。传输大量和少量数据的最佳方式是什么?我的系统连接到可以访问互联网的服务器。我系统的IP地址是动态的。我不知道如何将数据发送到连接到互联网的另一个系统。我需要找到路由器地址吗?(我的IP地址生成为192.168.1.15)。使用套接字是否足够,还是需要HTTP? 最佳答案 如果不涉及防火墙/代理,套接字就足够了。但是,由于涉及到Internet(不是最快的连接),为了方便起见,我建议您最好选择通过http进行远程处理。

c# - 试图以访问权限禁止的方式访问套接字

我刚刚下载了C#SDK和ASP.NETMVC示例,并将其修改为适用于4.2.1。(网络配置facebookSettings参数等),创建我的Facebook应用程序并尝试运行它。单击facebook登录按钮-确定,在facebook弹出窗口中输入凭据-确定,允许访问我的应用程序-确定,然后我收到此错误:System.Net.Sockets.SocketException:Anattemptwasmadetoaccessasocketinawayforbiddenbyitsaccesspermissions66.220.146.47:443varapp=newFacebookApp();